#include <iostream>

// auto func()
// {
//     std::cout << "func" << std::endl;
//     return "hello";
// }

template<typename T1,typename T2>
auto add(T1 a,T2 b)->decltype(a+b)
{
    return a + b;
}

int main()
{
    // 推导可以不需要初始化
    // decltype(func()) a; // 在编译期进行类型推导，不会调用

    // const int &i = 0;
    // 能推const和&
    // decltype(i) b = i;


    // int a = 10;
    // int b = 20;
    //推导左值推&，推导右值推变量
    // decltype(左值) = 引用
    // decltype(右值) = 变量
    // decltype(a+=b) c = a;

    return 0;
}